
#include <view/Janela.h>
#include <view/Botao.h>

//#include <cmath>

Botao::Botao(int cx, int cy, int x, int y)
    : Controle(cx, cy, x, y)
{
    for(int i=0; i<Largura(); i++)
        for(int j=0; j<Altura(); j++)
            Matriz()[i][j] = RGBA(255,255,255,255);
    
    int cor_da_linha = RGBA(0,0,0,255);
    
    for(int i=0; i<Largura(); i++)
    {
        Matriz()[i][0]          = cor_da_linha;
        Matriz()[i][Altura()-1] = cor_da_linha;
    }
    for(int j=0; j<Altura(); j++)
    {
        Matriz()[0][j]           = cor_da_linha;
        Matriz()[Largura()-1][j] = cor_da_linha;
    }
}


Botao::~Botao()
{
    ;
}


void Botao::CarregarImagem(Imagem& img)
{
    Matriz().Mesclar(2, 3, img.Matriz(), 0, 0, img.Largura(), img.Altura());

    m_imNormal.Largura(Largura());
    m_imNormal.Altura(Altura());
    m_imSobre.Largura(Largura());
    m_imSobre.Altura(Altura());

    for(int i=0; i<Largura(); i++)
        for(int j=0; j<Altura(); j++)
        {
            m_imNormal.Matriz()[i][j] = (*this).Matriz()[i][j];
            m_imSobre.Matriz()[i][j]  = (*this).Matriz()[i][j];
        }
    
    for(int i=0; i<m_imSobre.Largura(); i++)
        for(int j=0; j<m_imSobre.Altura(); j++)
        {
            int r = BANDA_R(m_imSobre[i][j]);
            int g = BANDA_G(m_imSobre[i][j]);
            int b = BANDA_B(m_imSobre[i][j]);
            int a = BANDA_A(m_imSobre[i][j]);
            
            r+=50;
            g+=50;
            b+=50;
            
            if(r>255)
                r=255;
            if(g>255)
                g=255;
            if(b>255)
                b=255;
            
            m_imSobre[i][j] = RGBA(r,g,b,a);
        }
}


bool Botao::AoBaixarEsq(EventoBaixarEsq ev)
{
    ev.janela->Redesenhar(this);

	return false;
}


bool Botao::AoSubirEsq(EventoSubirEsq ev)
{
    return false;
}


bool Botao::AoMoverSobre(EventoMoverSobre ev)
{
    return false;
}

